Generating enumerated information in which a plurality of files are enumerated in a sequential medium

ABSTRACT

A mechanism is provided for generating enumerated information in which a plurality of files is enumerated except entirely-invalidated files on a sequential medium. Management information for managing locations where the plurality of files on the sequential medium are recorded is acquired from the sequential medium. The enumerated information in which the plurality of files are enumerated is generated in an order according to the locations where the plurality of files are recorded on the basis of the acquired management information.

BACKGROUND

The present invention relates to a device and method for generatinginformation in which a plurality of files are enumerated. Particularly,the present invention relates to a device and method for generatinginformation in which a plurality of files on a sequential medium areenumerated.

In the case of copying a plurality of files or scanning a plurality offiles for computer viruses, the plurality of files is sequentially readfrom a storage. In this process, if the storage is a random-accessiblemedium such as a hard disk drive (HDD) or a universal serial bus (USB)memory, the order of accessing the files does not make any difference.

If the storage is a sequentially-accessed medium, such as a tape,however, it may require a long period of time for reading the pluralityof files depending on the order of accessing the files in some cases.

Actually, even in the case of using a linear tape file system (LTFS),which is a standard file system on a tape conforming to the LinearTape-Open (LTO) standard, the performance (a required period of time)largely depends on the order of copying the files if the locations wherethe files are recorded are not sequential on the tape when the files onthe LTFS are copied into the HDD.

For example, it is assumed that a file A, a file B, and a file C arewritten in this order in a tape. In this case, if the file A, the fileB, and the file C are accessed in this order, the files are able to beread at a speed of maximum 140 MB/s in the LTO fifth generation. If thefile C, the file B, and the file A are accessed in this order, however,the files may be able to be read at a speed of only several MB/s or soin some cases.

As described above, the order of accessing files is largely related tothe performance in the case of copying the files in the LTFS into theHDD.

There is known a technique described in an official gazette forimproving the efficiency of accessing files by considering the order ofthe accessed files (for example, refer to Japanese Patent ApplicationPublication No. JP2010-97646A).

In Japanese Patent Application Publication No. JP2010-97646A, a tapedrive controller includes a tape running control unit which controls therunning of a tape, a read/write control unit which controls a head, anda seek management table in which seek times from the beginning of tape(BOT) are registered in the order of written files. In the seekmanagement table, seek time is provisionally registered with respect toa file whose seek time is unconfirmed. If the seek information isconfirmed afterward, the confirmed seek time is registered. When arequest is made to read a plurality of files, the tape running controlunit controls the running of the tape to enable the head to access theplurality of files requested to be read in ascending order of the seektime by referring to the seek management table.

In addition to the above, there have been suggested other varioustechniques described in official gazettes for speeding up the access tofiles (for example, refer to Japanese Patent Application Publication No.JP02-246075).

Japanese Patent Application Publication No. JP02-246075 discloses aconfiguration in which a file management information block is providedbefore the BOT of a magnetic tape volume, a file name and locationinformation are written into the file management information block, andthe position of the head is determined by referring to the file name andlocation information when accessing a file.

SUMMARY

A general operation in copying files is as described below.

Specifically, for example, in the case of Windows 7®, a directoryincluding a plurality of files is copied by normally selecting thedirectory by Explorer® and then dragging and dropping the directory ontoa copy destination or inputting an xcopy command from a command prompt.Thereafter, in either case of performing the drag-and-drop operation andthe input operation of the xcopy command, the files in the directory areenumerated and the files are copied in order.

More specifically, the application (Explorer®, xcopy, etc.) queries theoperating system (OS) by calling an application program interface (API)before copying the files. Thereupon, the OS queries a file system byusing an I/O request packet (IRP). In response to this, the file systemenumerates and sends back the file names of the files under thedirectory, which is to be copied, into a buffer prepared by the IRP. Inthis process, the file system counts internally-used file IDs in orderfrom zero and enumerates the files in the directory as filescorresponding to the respective file IDs.

Note that, however, there is no clear rule for determining which file inthe directory is associated with each file ID. Specifically, the orderin which the file names in the directory are enumerated in the case ofenumerating the files depends on the implementation of the file system.For example, an NT file system (NTFS), which is normal in Windows®,enumerates the files names in alphabetical order and, in LTFS versions 1and 2, enumerates the file names in the order of file creation.

Here, description will be made with respect to a case of creating a fileA, a file B, and a file C on a tape in this order and then updating thefile B and the file A in this order. Since normally files on a tape arenot overwritten in updating of the files, the file A before the updatingand the file B before the updating on the tape are invalidated and thenthe file B after the updating and the file A after the updating areadditionally written in this order subsequently to the file C. In otherwords, the valid files (not invalidated) on the tape are the file C, thefile B, and the file A in this order from the beginning of the tape.

LTFS, however, enumerates files in the order of creation time, insteadof the order of update time. Therefore, the files are enumerated in theorder of the file A, the file B, and the file C. As a result, if thedirectory including these files are copied by the drag-and-dropoperation or the input operation of the xcopy command, the file A, thefile B, and the file C are copied in this order, thereby causing aproblem of requiring long time for copying.

To solve this problem, there may be a method of copying the files in theorder of recorded locations by using an application dedicated to copyingfiles. This method, however, requires the knowledge of the recordedlocations of the files on the tape.

Since LTFS is an open standard format and the format specificationthereof is published, it is possible to know the locations on the tapewhere the files are recorded by the direct reading of the tape by theapplication. This, however, requires the implementation dependent on ahardware device. Moreover, even if the implementation dependent on thehardware device is performed, files cannot be copied by using verygeneral functions belonging to the OS such as the drag-and-drop andxcopy functions.

Japanese Patent Application Publication No. JP2010-97646A and JapanesePatent Application Publication No. JP02-246075 do not disclose any meansfor solving the above problems.

An object of the present invention is to perform an access which doesnot decrease performance specialized for sequential media, withoutperforming implementation dependent on a hardware device on theapplication side.

In one illustrative embodiment, a method, in a data processing system,is provided for generating enumerated information in which a pluralityof files are enumerated except entirely-invalidated files on asequential medium. The illustrative embodiment acquires managementinformation for managing locations where the plurality of files on thesequential medium are recorded from the sequential medium. Theillustrative embodiment generates the enumerated information in whichthe plurality of files are enumerated in an order according to thelocations where the plurality of files are recorded on the basis of theacquired management information.

In other illustrative embodiments, a computer program product comprisinga computer useable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones of, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system/apparatus is provided.The system/apparatus may comprise one or more processors and a memorycoupled to the one or more processors. The memory may compriseinstructions which, when executed by the one or more processors, causethe one or more processors to perform various ones of, and combinationsof, the operations outlined above with regard to the method illustrativeembodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The invention, as well as a preferred mode of use and further objectivesand advantages thereof, will best be understood by reference to thefollowing detailed description of illustrative embodiments when read inconjunction with the accompanying drawings, wherein:

FIG. 1 is a diagram for describing a general operation performed when afirst enumeration method is specified in an embodiment of the presentinvention;

FIG. 2 is a diagram for describing a general operation performed when asecond enumeration method is specified in the embodiment of the presentinvention;

FIG. 3 is a diagram for describing a general operation performed when athird enumeration method is specified in the embodiment of the presentinvention;

FIG. 4 is a diagram illustrating an overall configuration example of astorage system in the embodiment of the present invention;

FIG. 5 is a diagram illustrating a hardware configuration example in theembodiment of the present invention;

FIG. 6 is a block diagram illustrating a functional configurationexample of a host in the embodiment of the present invention;

FIG. 7 is a flowchart illustrating an example of an operation performedby the host when a tape is mounted in the embodiment of the presentinvention;

FIGS. 8A-8D are diagrams illustrating an example of information storedin an index storage unit, which is caused by the operation performed bythe host when the tape is mounted, in the embodiment of the presentinvention; and

FIG. 9 is a flowchart illustrating an example of an operation performedby the host when files are enumerated in the embodiment of the presentinvention.

DETAILED DESCRIPTION

Hereinafter, preferred embodiments of the present invention will bedescribed in detail in accordance with the accompanying drawings.

In this embodiment of the present invention, files are enumerated invarious methods according to options, one of which is selected when atape is mounted. The methods of enumerating files can be, for example,those corresponding to the representation as described below.

In a first enumeration method, the files in each directory areenumerated in an order starting from the beginning of a tape with thedirectory structure as it is.

FIG. 1 is a diagram illustrating an arrangement of files on a tape fordescribing the first enumeration method.

FIG. 1 illustrates a case where three files, FileA, FileB, and FileC arewritten into the tape in this order and then FileB is updated andthereafter FileA is updated. Normally, if files on a tape are updated,the files are rewritten, instead of overwriting the files. Therefore, inFIG. 1, FileA and FileB are invalidated and FileB and FileA after theupdating are added in this order at the back of FileC. Specifically,only the shaded files are valid. In this case, assuming that FileA,FileB, and FileC exist directly under the same directory, FileC, FileB,and FileA are enumerated in this order in the first enumeration method.

In a second enumeration method, in the case where one file is dividedinto a plurality of fragments on a tape in the first enumeration method,each fragment is given a particular file name and each of the pluralityof fragments is treated as one file.

FIG. 2 is a diagram illustrating an arrangement of files on a tape fordescribing the second enumeration method.

FIG. 2 illustrates a case where three files, FileA, FileB, and FileC arewritten into a tape in this order and then a part of FileA is updated.Specifically, it is the case where only the updated part of FileA isadded at the back of FileC, by which FileA is divided. In this diagram,valid files are shaded, too. In this case, assuming that FileA, FileB,and FileC exist directly under the same directory, four files, FileA˜1,FileB, FileC, and FileA˜2 are enumerated in this order in the secondenumeration method. Although “˜” is used for an example of a specialcharacter string here, any other character string or any other methodfor representing may be used.

In a third enumeration method, the directory structure disappears andall files are given file names having a format that suggests a path andarranged directly under the root directory, where the files areenumerated in an order starting from the beginning of a tape.

FIG. 3 is a diagram illustrating a directory structure for describingthe third enumeration method.

FIG. 3 illustrates a case where two directories, dir1 and dir2 existunder the root directory and two files, File1 and File2 exist under eachdirectory.

For example, if a tape is mounted without options, the representation isas shown. By selecting an option for specifying the third enumerationmethod when the tape is mounted, however, four files, dir1˜˜File1,dir1˜˜File2, dir2˜˜File1, and dir2˜˜File2 are enumerated under the rootdirectory. Although “˜˜” is used for an example of a special characterstring here, any other character string or any other method forrepresenting may be used.

In a fourth enumeration method, in the case where one file is furtherdivided into a plurality of fragments on a tape in the third enumerationmethod, a particular file name is given to each fragment and each of theplurality of fragments is treated as a file.

In a fifth enumeration method, files are enumerated in the thirdenumeration method only under a specific directory specified by anoption.

In a sixth enumeration method, files are enumerated in the fourthenumeration method only under a specific directory specified by anoption.

In a seventh enumeration method, a special directory is arrangeddirectly under the root directory in a state where a normal directorystructure is provided and further a directory is arranged under thespecial directory in one of the first to sixth enumeration methods.

The following describes a file system which enumerates files in theabove enumeration methods in detail.

FIG. 4 is a diagram illustrating a configuration example of a storagesystem to which this type of file system is applied.

As shown, the storage system includes a tape drive 10 and a host 30.

The tape drive 10 is an example of a recording device, which includes ahost interface (hereinafter, referred to as “host I/F”) 11, a buffer 12,a channel 13, a head 14, and a motor 15. In addition, the tape drive 10includes a controller 16, a head position control system 17, and a motordriver 18. Furthermore, a tape can be mounted into the tape drive 10 byan insertion of a tape cartridge 20 and therefore the tape cartridge 20is also shown. The tape cartridge 20 includes a tape 23 wound aroundreels 21 and 22. The tape 23 moves in a longitudinal direction from thereel 21 to the reel 22 or from the reel 22 to the reel 21 along with therotation of the reels 21 and 22. Although the magnetic tape isillustrated as the tape 23, a tape medium other than the magnetic tapemay be used.

Here, the host I/F 11 communicates with the host 30. For example, thehost I/F 11 receives a command prompting for writing data from the host30 to the tape 23, a command causing the tape 23 to move to a targetposition, a command prompting for reading data from the tape 23 and thelike. As a protocol used for this host I/F 11, SCSI is illustrated. Inthe case of SCSI, a first command corresponds to a Write command, asecond command corresponds to a Locate command or a Space command, and athird command corresponds to a Read command. In addition, the host I/F11 is an example of a transmitting unit and therefore sends back aresponse indicating whether data read in response to these commands andprocessing corresponding to these commands are successful orunsuccessful to the host 30.

The buffer 12 is a memory which stores data to be written into the tape23 or data read from the tape 23. For example, the buffer 12 is builtfrom a dynamic random access memory (DRAM). Moreover, the buffer 12 iscomposed of a plurality of buffer segments, where each buffer segmentstores a dataset, which is a unit for reading/writing to the tape 23.

The channel 13 is a communication channel which is used to send data,which is to be written into the tape 23, to the head 14 or to receivedata, which is read from the tape 23, from the head 14.

The head 14 is an example of the writing unit and the reading unit,which writes information into the tape 23 or reads information from thetape 23 when the tape 23 moves in the longitudinal direction.

The motor 15 rotates the reels 21 and 22. Although the motor 15 isrepresented by one rectangle in FIG. 4, it is preferable to provide onemotor for each of the reels 21 and 22, in other words, two motors intotal.

The controller 16 controls the entire tape drive 10. For example, thecontroller 16 controls writing data into the tape 23 and reading datafrom the tape 23 according to a command received by the host I/F 11. Inaddition, the controller 16 controls the head position control system 17and the motor driver 18.

The head position control system 17 controls the head 14 to follow oneor a plurality of desired wraps. Here, the term “wrap” means a group ofa plurality of tracks on the tape 23. If a wrap needs to be changed, thehead 14 also needs to be electrically switched and therefore the headposition control system 17 controls the switch operation.

The motor driver 18 drives the motor 15. If two motors 15 are used, twomotor drivers 18 are provided as described above.

Moreover, the host 30 is an example of a generating device whichgenerates enumerated information in which a plurality of files areenumerated and includes an application software (hereinafter, simplyreferred to as “application”) 40, an OS 50, and a file system 60.

Here, the application 40 is software which is used for a specificpurpose, such as, for example, software for copying a file in a storageinto HDD. Taking Windows 7® for example, this type of software includesExplorer®, software operating according to an xcopy command, and thelike.

The OS 50 is software which manages the entire operation of the host 30.In this embodiment, the OS 50 particularly receives information in whichfiles are enumerated from the file system 60 and provides theapplication 40 with the received information. Since an OS has a filesystem 60 as a function of the OS by the common practice thereof, a partincluding functions other than the file system 60 among the functions ofthe OS will be referred here to as “OS 50.”

The file system 60 is software which manages files in the storage. Thefile system 60 sends back information in which files are enumerated inresponse to an query from the OS 50.

The following describes a hardware configuration of the host 30.

FIG. 5 is a diagram illustrating a hardware configuration example of thehost 30.

As shown, the host 30 includes a central processing unit (CPU) 30 awhich is a computing means, a main memory 30 c connected to the CPU 30 avia a motherboard (M/B) chipset 30 b, and a display mechanism 30 dconnected to the CPU 30 a via the M/B chipset 30 b likewise. Inaddition, the M/B chipset 30 b is connected to a network interface 30 f,a magnetic disk device 30 g, a sound mechanism 30 h, a keyboard/mouse 30i, and a flexible disk drive 30 j via a bridge circuit 30 e.

In FIG. 5, the respective constituent elements are connected to eachother via a bus. For example, the CPU 30 a and the M/B chipset 30 b orthe M/B chipset 30 b and the main memory 30 c are connected to eachother via a CPU bus. In addition, the M/B chipset 30 b and the displaymechanism 30 d may be connected to each other via an acceleratedgraphics port (AGP). If the display mechanism 30 d includes a video cardsupporting PCI Express, however, the M/B chipset 30 b and the video cardare connected to each other via a PCI Express (PCIe) bus. Further, whenthe bridge circuit 30 e is connected to the network interface 30 f, forexample, PCI Express may be used. Moreover, when the bridge circuit 30 eis connected to the magnetic disk device 30 g, for example, a serial ATattachment (ATA), a parallel transfer ATA, or a peripheral componentsinterconnect (PCI) bus may be used. Furthermore, when the bridge circuit30 e is connected to the keyboard/mouse 30 i or to the flexible diskdrive 30 j, a USB bus may be used.

Subsequently, the functional components of the host 30 will bedescribed. Note that, however, this embodiment is carried out by thefile system 60 and therefore only the functional components implementedby the file system 60 will be described below.

FIG. 6 is a diagram illustrating the functional configuration example ofthe host 30.

As shown, the host 30 includes a command processing unit 61, an optionstorage unit 62, an index receiving unit 63, an option decision unit 64,an index change unit 65, and an index storage unit 66 as functionalcomponents implemented by the file system 60. In addition, the host 30includes an IRP receiving unit 67, an IRP setting unit 68, and aresponse transmission unit 69.

The command processing unit 61 processes a command prompting formounting the tape 23 on the tape drive 10. Specifically, the commandprocessing unit 61 retrieves an option specified by a command promptingfor mounting the tape 23, first. This option indicates which enumerationmethod is to be used among the enumeration methods of the firstenumeration method to the seventh enumeration method. If the optionindicates that the fifth or sixth enumeration method is to be used, italso indicates the directory where files to be enumerated exist.Moreover, the command prompting for mounting the tape 23 is transmittedto the tape drive 10 to perform mount processing. In this embodiment,the command processing unit 61 is provided as an example of an acceptingunit which accepts a selected enumeration method.

The option storage unit 62 stores information of the option retrieved bythe command processing unit 61.

The index receiving unit 63 receives an index transmitted in response tothe command prompting for mounting the tape 23 on the tape drive 10. Inthis regard, the index is recorded in the tape 23 and therefore theindex receiving unit 63 receives the index which has been read from thetape 23 by the tape drive 10. Moreover, the index is information formanaging a plurality of files recorded in the tape 23 and includesinformation such as the file names of the files, the recorded locationsof the files, and directories in which the files exist. In thisembodiment, the index is used as an example of management informationand the index receiving unit 63 is provided as an example of anacquisition unit which acquires the management information and areceiving unit which receives the management information.

The option decision unit 64 decides whether the specified optionrequires a change in the directory structure or in the file names on thebasis of the information of the option stored in the option storage unit62. If the option decision unit 64 decides that the specified optiondoes not require the change in the directory structure or in the filenames, the option decision unit 64 stores the index received by theindex receiving unit 63 into the index storage unit 66 as it is. If theoption decision unit 64 decides that the specified option requires achange in the directory structure or in the file names, the optiondecision unit 64 passes the index received by the index receiving unit63 to the index change unit 65.

The index change unit 65 changes the directory structure or file namesmanaged by the index passed from the option decision unit 64 accordingto the information of the option stored in the option storage unit 62and then stores the changed information into the index storage unit 66.

The index storage unit 66 stores the index received by the indexreceiving unit 63 just as it is or with the index changed by the indexchange unit 65. In this embodiment, the index storage unit 66 isprovided as an example of a storage unit which stores the managementinformation.

The IRP receiving unit 67 receives an IRP from the OS 50.

The IRP setting unit 68 stores the file names within the specifieddirectory into a buffer prepared by the IRP received by the IRPreceiving unit 67. If the file names are divided and stored multipletimes in the above, first, the IRP setting unit 68 decides whether afirst IRP is received or a second or subsequent IRP is received byreferring to a parameter Flag of the IRP. If the first IRP is received,the IRP setting unit 68 stores file names in order from a file havingzero as a file ID owned by the file system 60 inside thereof. If thesecond or subsequent IRP is received, the IRP setting unit 68 storesfile names in order from a file having a file ID subsequent to the fileID of the file whose file name is stored at receiving the previous IRP.In this case, the file whose file ID is x is assumed to be a file whichis determined to be enumerated at the x-th location in consideration ofthe recorded locations of the files in the tape 23 (for example, a filerecorded at the x-th location counted from the beginning of the tape23). In this embodiment, the file names stored in the buffer prepared bythe IRP are used as an example of enumerated information in which theplurality of files are enumerated in the order according to thelocations in which the plurality of files are recorded, and the IRPsetting unit 68 is provided as an example of a generation unit whichgenerates the enumerated information.

The response transmission unit 69 sends back a status, which is a resultof processing in which the IRP setting unit 68 stores the file namesinto the buffer prepared by the IRP, to the OS 50.

Among these functions, the command processing unit 61, the indexreceiving unit 63, the option decision unit 64, the index change unit65, the IRP receiving unit 67, the IRP setting unit 68, and the responsetransmission unit 69 are implemented by the CPU 30 a that reads aprogram stored in the magnetic disk device 30 g into the main memory 30c and executes the program. Moreover, the option storage unit 62 isimplemented by, for example, the main memory 30 c and the index storageunit 66 is implemented by, for example, the magnetic disk device 30 g.

Subsequently, the operation of the host 30 will be described.

FIG. 7 is a flowchart illustrating an example of an operation performedby the file system 60 when the tape 23 is mounted.

As shown, in the file system 60, first, the command processing unit 61retrieves an option according to the command prompting for mounting thetape 23 (step 601). The information of the option retrieved here isstored in the option storage unit 62.

Moreover, the command processing unit 61 performs the mount processingof the tape 23 by transmitting the command prompting for mounting thetape 23 to the tape drive 10 (step 602). Specifically, the commandprocessing unit 61 pulls the tape 23 into the tape drive 10 to enablereading or writing from or to the tape 23.

Thereby, in the tape drive 10, the head 14 reads an index from the tape23. Then, the index is passed to the host I/F 11 via the channel 13 andthe buffer 12 and the host I/F 11 transmits the index to the host 30.Consequently, in the file system 60, the index receiving unit 63receives the index (step 603).

Subsequently, the option decision unit 64 decides whether the specifiedoption requires a change in the directory structure or in the file namesby referring to the information of the option stored in the optionstorage unit 62 (step 604).

If the option decision unit 64 decides that the specified option doesnot require a change in the directory structure or in the file names asa result, the index received in step 603 is stored in the index storageunit 66 without changing the directory name or file names (step 605).

For example, there is no change in the directory structure and in thefile names in the above first enumeration method. Therefore, if thefirst enumeration method is specified, the index is stored in the indexstorage unit 66 just as it is. Moreover, if it is specified that adirectory is arranged in the first enumeration method under a specialdirectory in the aforementioned seventh enumeration method, the index isstored in the index storage unit 66 with the content obtained when thedirectory is arranged in the first enumeration method added to theoriginal content of the index.

On the other hand, if the option decision unit 64 decides that thespecified option requires a change in the directory structure or in thefile names, the control is transferred to the index change unit 65 andthen the index change unit 65 changes the content of the index receivedin step 603 and stores the content into the index storage unit 66 (step606).

For example, since the directory structure is changed in theaforementioned third to sixth enumeration methods, the index is storedin the index storage unit 66 with the directory structure changed if oneof the third to sixth enumeration methods is specified. Moreover, thefile names are changed in the aforementioned second, fourth, and sixthenumeration methods. Therefore, if one of the second, fourth, and sixthenumeration methods is specified, the index is stored in the indexstorage unit 66 with the file names changed. Furthermore, if it isspecified that a directory is arranged in one of the second to sixthenumeration methods under a special directory in the aforementionedseventh enumeration method, the index is stored in the index storageunit 66 with the content obtained when the directory is arranged in oneof the first to sixth enumeration methods added to the original contentof the index.

FIGS. 8A-8D are diagrams illustrating an example of the content of theindex stored in the index storage unit 66 in step 605 or step 606 ofFIG. 7. It is assumed here that the files are arranged in the tape 23 asillustrated in FIG. 2 and that the recorded locations of the leftfragment of FileA, FileB, FileC, and the right fragment of FileA aredenoted by Pos1, Pos2, Pos3, and Pos4, respectively. Moreover, thedirectory structure set for these files is such that FileA and FileCexist directly under a directory named dir1 and FileB exists directlyunder a directory named dir2.

FIG. 8A illustrates an example of the content of an index stored whenthe first enumeration method is specified.

If the first enumeration method is specified, NO is selected in step 604in FIG. 7 and therefore the content of the index is not changed.Specifically, in the index, the directory structure and file names arejust as they are. Then, a recorded location is defined for each file.Note that, however, FileA is divided into two fragments and thereforetwo recorded locations Pos1 and Pos4 are defined for FileA.

FIG. 8B illustrates an example of the content of an index stored whenthe second enumeration method is specified.

If the second enumeration method is specified, YES is selected in step604 in FIG. 7 and therefore the content of the index is changed.Specifically, in the index, the relationship between the directory andthe files under the directory is maintained and the fragments of a fileare managed as files with file names suggesting the file before thedivision. Further, the recorded location of each file is defined.Specifically, two fragments obtained by dividing FileA are managed withfile names FileA˜1 and FileA˜2, where the original recorded locationPos1 of the fragment is defined for FileA˜1 and the original recordedlocation Pos4 of the fragment is defined for FileA˜2.

FIG. 8C illustrates an example of an index stored when the thirdenumeration method is specified.

Also when the third enumeration method is specified, YES is selected instep 604 in FIG. 7 and therefore the content of the index is changed.Specifically, in the index, the directory structure is lost and thefiles are managed with the file names suggesting a path. Then, arecorded location is defined for each file. Specifically, FileA underdir1 is managed with a file name “dir1˜˜FileA.” Note that, however, thefile “dir1˜˜FileA” is divided into two fragments and therefore tworecorded locations Pos1 and Pos4 are defined for dir1˜˜FileA.

FIG. 8D illustrates an example of the content of an index stored whenthe fourth enumeration method is specified.

Also when the fourth enumeration method is specified, YES is selected instep 604 in FIG. 7 and therefore the content of the index is changed.Specifically, in the index, the directory structure is lost and thefiles are managed with the file names suggesting a path, and thefragments of a file are managed as files with file names suggesting thefile before the division. Then, a recorded location is defined for eachfile. Specifically, two fragments obtained by dividing FileA under dir1are managed with file names dir1˜˜FileA˜1 and dir1˜˜FileA˜2, where theoriginal recorded location Pos1 of the fragment is defined fordir1˜˜FileA˜1 and the original recorded location Pos4 of the fragment isdefined for dir1˜˜FileA˜2.

If the fifth enumeration method is specified and if the sixthenumeration method is specified, only the information under the specificdirectory within the index may be changed as shown in FIG. 8C and FIG.8D, and therefore the content of the index stored when each of theseenumeration methods is specified is not shown.

Moreover, if the seventh enumeration method is specified, theinformation within the index may be changed to information as shown inone of FIG. 8A to FIG. 8D with the original information left as it is orto information obtained by changing only information under a specificdirectory as shown in FIG. 8C or 8D. Therefore, the content of the indexstored when this enumeration method is specified is not shown, either.

FIG. 9 is a flowchart illustrating an example of the operation of thefile system 60 for enumerating files.

First, when the user specifies copying a file by a drag-and-dropoperation in Explorer® or an input operation of an xcopy command from acommand prompt, the application 40 (Explorer®, xcopy, or the like)queries the OS 50 by calling an API such as FindFirstFile( ),FindNextFile( ).

Then, as shown, the OS 50 generates IRP, IRP_MJ_DIRECTORY_CONTROL (theminor function code is IRP_MN_QUERY_DIRECTORY) (step 521) and transmitsthe IRP to the file system 60 (step 522). Specifically, the OS 50queries the file system 60 by using the IRP.

Thereby, in the file system 60, the IRP receiving unit 67 receives theIRP from the OS 50 (step 621).

Thereupon, the IRP setting unit 68 references Flag, which is a parameterof the IRP received by the IRP receiving unit 67, and decides whetherthe passed IRP is the first IRP or the second or subsequent IRP (step622).

If it is decided to be the first IRP as a result, the IRP setting unit68 sets the variable x to zero (step 623). Then, the IRP setting unit 68decides whether the directory specified by the application 40 contains afile whose file ID used inside the file system 60 is x (in this case,zero) (step 624).

If it is decided that such a file exists, the IRP setting unit 68 copiesthe file name of the file to the buffer prepared by the IRP (step 625)and decides whether there is any free space in the buffer (step 626). Ifit is decided that there is any free space in the buffer, the IRPsetting unit 68 adds one to the variable x (step 627) and repeats theprocessing of steps 624 to 626. If it is determined that there is nofree space in the buffer, the response transmission unit 69 is informedaccordingly and then the response transmission unit 69 sends back astatus “STATUS_SUSCESS” to the OS 50 (step 629).

Further, if it is decided that there is no file whose file ID is xwithin the directory in step 624, the response transmission unit 69 isinformed accordingly and then the response transmission unit 69 sendsback a status “STATUS_NO_MORE_FILES” to the OS 50 (step 628).

On the other hand, if it is decided that the passed IRP is the second orsubsequent IRP in step 622, the IRP setting unit 68 adds one to the lastvalue of the variable x which has been used in the processing by theprevious IRP (step 627) and then performs processing of steps 624 to629.

Thereafter, the OS 50, which has received the status from the responsetransmission unit 69 of the file system 60, decides whether the statusis STATUS_SUSCESS (step 523).

If it is decided that the status is STATUS_SUSCESS as a result, the OS50 generates an IRP again in step 521 and transmits the IRP to the filesystem 60 again in step 522.

On the other hand, if it is decided that the status is notSTATUS_SUSCESS, in other words, that the status is STATUS_NO_MORE_FILES,the OS 50 terminates the processing. This causes the OS 50 to referencethe information in which the file names in the buffer prepared by theIRP are enumerated.

In the above, there has been described an example of the operation to beperformed when the API such as FindFirstFile( ), FindNextFile( ) iscalled by, for example, inputting the xcopy command from a commandprompt. The same operation, however, is performed when the API such asFindFirstFile( ), FindNextFile( ) is called in any situation forenumerating files such as, for example, a case where a dir command isinput from a command prompt.

In the above example of the operation, a particularly different pointfrom existing operations for enumerating files is to determine the filewhose file ID is x according to the recorded location of the file on thetape 23 in step 625. To be more specific, there may be a method in whichthe order of the recorded locations of the files on the tape 23 isdirectly used as the order of file IDs, a method in which the orderspeeding up the reading of the files is calculated from the recordedlocations of the files on the tape 23 and then used as the order of fileIDs.

In the former method in the above, the files are enumerated in orderfrom the file corresponding to the recorded location closest to thebeginning of the tape 23 with reference to the index stored in the indexstorage unit 66 in step 605 or step 606 of FIG. 7. If a plurality ofrecorded locations are stored for one file before the enumeration, theorder of enumerating the files is determined by using the recordedlocation closest to the beginning of the tape 23 among the plurality ofrecorded locations.

For example, if the index as shown in FIG. 8A is stored, the files underdir1 are enumerated in the order of FileA and FileC. If the index asshown in FIG. 8B is stored, the files under dir1 are enumerated in theorder of FileA˜1, FileC, and FileA˜2. If the index as shown in FIG. 8Cis stored, the files are enumerated in the order of dir1˜˜FileA,dir2˜˜FileB, and dir1˜˜FileC, independently of whether the files areunder dir1 or dir2. Further, if the index as shown in FIG. 8D is stored,the files are enumerated in the order of dir1˜˜FileA˜1, dir2˜˜FileB,dir1˜˜FileC, and dir1˜˜FileA˜2, independently of whether the files areunder dir1 or dir2.

The above is consistently an example of a case where only a change inthe directory name or in the file names is performed as needed when thetape 23 is mounted. For example, if not only the directory name or filenames are changed as needed, but also the file names are rearranged inthe order according to the recorded locations, the user only needs toretrieve the files in the order in which the files are arranged whenenumerating the files.

There may be concern of whether an existing application normallyoperates in a situation where file names suggesting a file beforedivision are given to the fragments of the file or file names suggestinga path are given to files with a directory structure eliminated as inthis embodiment.

This concern, however, is resolved by making coexistence of an accessthrough LTFS and an access through the file system 60 in thisembodiment. For example, in Explorer®, an F drive is defined to beaccessed through LTFS, a G drive is defined to be accessed through thefile system 60 which enumerates files in the first enumeration method,and an H drive is defined to be accessed through the file system 60which enumerates files in the second enumeration method.

Moreover, although file names suggesting a file before division aregiven to the fragments of the file when one of the second, fourth, andsixth enumeration methods is specified in this embodiment, the presentinvention is not limited thereto. File names by which the fragments ofthe file can be distinguished from each other may be given to thefragments.

Further, although file names suggesting the path of each file are givento the files when one of the third to sixth enumeration methods isspecified in this embodiment, the present invention is not limitedthereto. File names by which the files can be distinguished from eachother may be given to the files.

Moreover, although the tape 23 is taken for example in this embodiment,the present invention is also applicable to any sequentially-accessiblesequential medium.

Further, although the entire file or a part thereof is invalidated uponthe update of the file and the entire updated file or the updated partof the file is added at the back of the last file in the sequentialmedium employed in this embodiment, the present invention is not limitedthereto. It is possible to use such a sequential medium that, upon theupdate of a file recorded in a first location, the entire file or a partof the file is invalidated and the entire updated file or the updatedpart of the file may be recorded in a second location where any otherfile is not recorded.

In this manner, the file system 60 is modified so that files areenumerated in the order according to the recorded locations on the tape23. Thereby, the files in the directory are copied at high speed,independently of the recorded locations on the tape 23, while thedirectory can be copied with a simple operation such as dragging anddropping in Explorer® or inputting the xcopy command from a commandprompt.

Further, in this embodiment, when the second enumeration method isspecified, the fragments of a file are treated as separate files andfiles including these files are enumerated in the order according to therecorded locations on the tape 23. Thereby, even if a file is divided,the files in the directory are copied at high speed, independently ofthe recorded locations on the tape 23 by a simple script. If files areenumerated for a virus scan, particularly the second enumeration methodis effective by using virus software which reads a part of each file andis able to detect that the file has a virus, if so.

Furthermore, in this embodiment, when the third enumeration method orthe fourth enumeration method is specified, the files under a pluralityof directories are arranged flat and these files are enumerated in theorder according to the recorded locations on the tape 23. Thereby, evenin the case of copying a plurality of directories, the files in theplurality of directories are copied at high speed, independently of therecorded locations on the tape 23, with a simple script. If files areenumerated for a virus scan, the third enumeration method or the fourthenumeration method is effective by using virus software which performs avirus scan for all files on LTFS under a certain directory and then forall files on LTFS under another directory in this order.

Still further, in this embodiment, when the fifth enumeration method orthe sixth enumeration method is specified, files are enumerated in thethird enumeration method or the fourth enumeration method only withrespect to a certain directory. Thereby, only files within a desireddirectory are copied at high speed, independently of the recordedlocations on the tape 23. The third enumeration method or the fourthenumeration method is effective when only files under a specificdirectory are required to be enumerated in a desired method.

Here, the present invention may be implemented by hardware only orsoftware only. Moreover, the present invention may be implemented by acombination of hardware and software. Moreover, the present inventionmay be implemented by a computer, a data processing system, or acomputer program. This computer program may be stored in acomputer-readable medium and be provided. Here, the medium may be anelectronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system (device or equipment) or a propagation medium. Inaddition, the computer-readable medium may be a semiconductor, asolid-state storage device, a magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk, or an optical disk, for example. The example of theoptical disk at this time includes a compact disk read-only memory(CD-ROM), a compact disk read/write (CD-R/W), and a DVD.

While the present invention has been described by using the embodiments,the technical scope of the present invention is not limited to thedescription of the aforementioned embodiments. It is obvious to personsskilled in the art that various changes or alternative embodiments canbe employed without departing from the spirit and scope of the presentinvention.

The invention claimed is:
 1. A method, in a data processing system, forgenerating enumerated information in which a plurality of files areenumerated except entirely-invalidated files on a sequential medium, themethod comprising: responsive to a mounting of the sequential medium inthe data processing system, identifying an enumeration method from aplurality of different enumeration methods for enumerating the pluralityof files on the sequential medium; storing the identified enumerationmethod for use in generating the enumerated information in which theplurality of files are enumerated; acquiring management information formanaging locations where the plurality of files on the sequential mediumare recorded from the sequential medium; and generating the enumeratedinformation in which the plurality of files are enumerated in an orderaccording to the locations where the plurality of files are recorded onthe basis of the acquired management information and using theidentified enumeration method, wherein at least one file in theplurality of files is a fragmented file existing in at least twolocations and wherein each file in the plurality of files is recorded onthe basis of the identified enumeration method identifying a rootdirectory.
 2. The method of claim 1, wherein, upon update of a filerecorded in a first location, at least a part of the file is invalidatedand wherein at least the part of the updated file is recorded in asecond location in which any other file is not recorded thereby formingthe fragmented file.
 3. The method of claim 1, wherein each file in theplurality of files is named based on: responsive to the file being anunfragmented file, a directory in which the file is located, a file namefor the file, and a location of the file, or responsive to the filebeing the fragmented file, a directory in which the file is located, afile name for the file, and the at least two locations of the file. 4.The method of claim 1, wherein each file in the plurality of files isnamed based on: responsive to the file being an unfragmented file, adirectory in which the file is located, the file name of the file, and alocation of the file, or responsive to the file being the fragmentedfile, the directory in which the file is located, the file name of thefile, and a modified file name, wherein the modified file name comprisesthe file name of the file, an indication of a fragment number, and alocation of the fragment.
 5. A computer program product for generatingenumerated information in which a plurality of files are enumeratedexcept entirely-invalidated files on a sequential medium comprising acomputer readable medium having a computer readable program storedtherein, wherein the computer readable program, when executed on acomputing device, causes the computing device to: responsive to amounting of the sequential medium in the data processing system,identify an enumeration method from a plurality of different enumerationmethods for enumerating the plurality of files on the sequential medium;store the identified enumeration method for use in generating theenumerated information in which the plurality of files are enumerated;acquire management information for managing locations where theplurality of files on the sequential medium are recorded from thesequential medium; and generate the enumerated information in which theplurality of files are enumerated in an order according to the locationswhere the plurality of files are recorded on the basis of the managementinformation and using the identified enumeration method, wherein atleast one file in the plurality of files is a fragmented file existingin at least two locations and wherein each file in the plurality offiles is recorded on the basis of the identified enumeration methodidentifying a root directory.
 6. The computer program product of claim5, wherein, upon update of a file recorded in a first location, at leasta part of the file is invalidated and wherein at least the part of theupdated file is recorded in a second location in which any other file isnot recorded thereby forming the fragmented file.
 7. The computerprogram product of claim 5, wherein each file in the plurality of filesis named based on: responsive to the file being an unfragmented file, adirectory in which the file is located, a file name for the file, and alocation of the file, or responsive to the file being the fragmentedfile, a directory in which the file is located, a file name for thefile, and the at least two locations of the file.
 8. The computerprogram product of claim 5, wherein each file in the plurality of filesis named based on: responsive to the file being an unfragmented file, adirectory in which the file is located, the file name of the file, and alocation of the file, or responsive to the file being the fragmentedfile, the directory in which the file is located, the file name of thefile, and a modified file name, wherein the modified file name comprisesthe file name of the file, an indication of a fragment number, and alocation of the fragment.
 9. A system for generating enumeratedinformation in which a plurality of files are enumerated exceptentirely-invalidated files on a sequential medium, the systemcomprising: a processor; and a memory coupled to the processor, whereinthe memory comprises instructions which, when executed by the processor,cause the processor to: responsive to a mounting of the sequentialmedium in the data processing system, identify an enumeration methodfrom a plurality of different enumeration methods for enumerating theplurality of files on the sequential medium; store the identifiedenumeration method for use in generating the enumerated information inwhich the plurality of files are enumerated; acquire managementinformation for managing locations where the plurality of files on thesequential medium are recorded from the sequential medium; and generatethe enumerated information in which the plurality of files areenumerated in an order according to the locations where the plurality offiles are recorded on the basis of the management information and usingthe identified enumeration method, wherein at least one file in theplurality of files is a fragmented file existing in at least twolocations and wherein each file in the plurality of files is recorded onthe basis of a the identified enumeration method identifying rootdirectory.
 10. The system of claim 9, wherein, upon update of a filerecorded in a first location, at least a part of the file is invalidatedand wherein at least the part of the updated file is recorded in asecond location in which any other file is not recorded thereby formingthe fragmented file.
 11. The system of claim 9, wherein each file in theplurality of files named based on: responsive to the file being anunfragmented file, a directory in which the file is located, a file namefor the file, and a location of the file, or responsive to the filebeing the fragmented file, a directory in which the file is located, afile name for the file, and the at least two locations of the file. 12.The system of claim 9, wherein each file in the plurality of files isnamed based on: responsive to the file being an unfragmented file, adirectory in which the file is located, the file name of the file, and alocation of the file, or responsive to the file being the fragmentedfile, the directory in which the file is located, the file name of thefile, and a modified file name, wherein the modified file name comprisesthe file name of the file, an indication of a fragment number, and alocation of the fragment.